草庐IT

NIO 缓冲区

全部标签

java - 缓冲图像颜色饱和度

我正在使用jfreesane编写一个简单的扫描应用程序和ApachePDFBox.这里是扫码:InetAddressaddress=InetAddress.getByName("192.168.0.17");SaneSessionsession=SaneSession.withRemoteSane(address);Listdevices=session.listDevices();SaneDevicedevice=devices.get(0);device.open();device.getOption("resolution").setIntegerValue(300);Buffe

java - (Java 7 NIO.2) 监视服务线程的自定义名称

在Java7中使用nio.2,当您创建这样的watch服务时:WatchServicewatcher=FileSystems.getDefault().newWatchService();然后,启动后台线程,在无限循环中轮询文件系统事件。此线程的名称是“Thread-n”,这在调查线程转储或分析session期间有点麻烦。我们可以更改该线程的名称吗? 最佳答案 直接看实现,好像不行。如果您不介意一些小技巧,您可以找到线程并重命名它。类似于(//TODO:进行错误检查)SetthreadsBefore=Thread.getAllSta

java - 在 J2ME 中将缓冲区旋转到播放器的替代方法?

由于许多J2ME手机的(非常烦人的)限制,音频文件在完全下载之前无法播放。因此,为了播放直播流,我不得不一次下载block,并构建ByteArrayInputStream,然后将其提供给播放器。这很好用,除了每次一个流结束并且需要一个新的流时会有大约1/4秒的令人讨厌的间隔。有什么办法可以解决这个问题,或者上面的问题吗? 最佳答案 使用J2MEJSR135播放长(3分钟或更长时间)轨道的唯一好方法是在创建播放器时使用“文件://”URL,或者让输入流实际上来自FileConnection。最近的黑莓手机只有在有可用的大Java堆内存

Java 7 的 nio.file 包在创建新文件时非常慢

我正在尝试从java程序创建300M文件,我从旧文件API切换到新的java7nio包,但新包比旧包更慢。与使用旧文件API时相比,我发现CPU利用率较低,但我正在运行这个简单的代码,我获得了0.5兆字节/秒的文件传输速率,并且来自java的写入正在从一个磁盘读取并写入另一个(写入是访问磁盘的唯一进程)。Files.write(FileSystems.getDefault().getPath(filePath),fiveToTenKBytes,StandardOpenOption.CREATE);这里有没有希望得到合理的吞吐量?更新:我正在从大文件中解压3亿个5-10k字节的图像文件。

Java NIO 适合低延迟还是高吞吐量?

我是JavaNIO新手,用过一点。我有一个一般性的查询。如果您正在设计超低延迟应用程序与高吞吐量应用程序,那么使用非阻塞IO后两者中哪一个明显受益?我的理解是,非阻塞IO肯定有助于提高吞吐量,因为工作线程不会阻塞,因此不会等待响应,并且可以自由触发新请求,直到之前的请求得到服务。一旦我们获得对先前触发的请求的响应,工作线程就可以异步处理它们,从而提高吞吐量。但是,我看不出非阻塞IO如何直接有利于低延迟应用程序。我想“异步行为是避免争用的好方法。”如果是这样的话,低争用意味着低延迟。因此NIO可能有助于降低延迟。有道理吗? 最佳答案

java - 为什么刚创建时需要刷新输出缓冲区?

在下面的场景中ObjectOutputStreamoutput=newObjectOutputStream(socket.getOutputStream());output.flush();//Dostuffwithit为什么在初始创建后总是需要刷新缓冲区?我经常看到这种情况,但我真的不明白什么必须冲洗掉。我希望新创建的变量为空,除非另有说明。有点像买了一个垃圾桶,发现里面有一小堆垃圾。 最佳答案 在超过15年的专业水平的Java编写中,我从未遇到过在写入流之前刷新流的需要。刷新操作根本不会执行任何操作,因为没有要刷新的内容。你想在

java - JNI 直接缓冲区。谁负责 native 缓冲区释放?

一方面,假设我们有一个使用env->NewDirectByteBuffer()创建的直接字节缓冲区。另一方面,我们有类似的直接缓冲区,但使用ByteBuffer.allocateDirect()创建。显然,这两个对象都应该由JVM以相同的方式管理,包括管理后备native缓冲区,在第一种情况下由用户提供,在第二种情况下由JVM从native堆中分配。当然,JVM必须在第二个对象的GC期间释放后备缓冲区(使用ByteBuffer.allocateDirect()实例化)。我的问题是:JVM会在第一个对象的GC期间尝试释放缓冲区(使用env->NewDirectByteBuffer()实例

java - Gson:序列化 java.nio.Path 导致 StackOverflowError

序列化它,导致StackOverFlowError:importjava.nio.file.Path;importjava.nio.file.Paths;publicclassTmp{privatePathpath=null;publicTmp(){path=Paths.get("c:\\temp\\");}}在我看来这像是一个错误!或者我做错了什么?是否有解决方法(期望编写一些将路径转换为字符串的自定义序列化程序)java.lang.StackOverflowErroratcom.google.gson.internal.$Gson$Types.resolve($Gson$Types

java - Scala/Java 中的 NIO 问题是什么

在网上搜索jvm并发性时,我发现了有关搜索Scala/Java的非阻塞IO库的问题。问题是什么?如果我想发送一些东西到文件/套接字,我可以启动单独的线程来完成这项工作。我知道使用基于事件的线程可能会出现问题-因为整个系统可能会被阻塞。但它是否引用了JVM/Scala?已添加:如果我错了请纠正我:我认为当你需要以异步方式调用一些IO函数时,它需要进入单独的进程或系统(重)线程。我对吗?所以-所有关于用通用语言解决此类问题的问题都涉及创建和管理单独的进程或线程。因此,该语言的唯一便利是创建一些线程池,这些线程池将异步分配给IO操作。所以我的假设是。句子:LanguageXisbettert

java - 在 Java 中创建和绘制巨大的(缓冲的)图像

我正在开发一个绘制矩阵的应用程序-使用Java2D-它可以变得非常大,例如30000x30000像素。此时此刻,我已经对BufferedImage进行了一些试验,但创建如此巨大的BufferedImage会导致内存不足异常,即使在扩大堆时也是如此。现在我正在考虑将图像拆分为多个图像/区域,当我在某个区域完成后将其写入磁盘并创建一个新的区域/BufferedImage并继续绘制。我对其他人如何处理这件事的想法很感兴趣。我已经离开Java一段时间了,所以欢迎任何具体的例子。 最佳答案 我为一个新的/小型开源项目做出贡献,它可能非常适合您